// 封装 axios
import axios from "axios";

const request = axios.create({
	baseURL: '/api',
	// 请求连接超时设置
	timeout: 2 * 60 * 1000,
});

// // 请求拦截器, 第一个参数是成功的回调，第二个参数是失败的回调
// request.interceptors.request.use((config) => {
// 	// 在发送请求之前做些什么
// 	const user = localStorage.getItem('user') || '';
// 	if (user) {
// 		const { token } = JSON.parse(user);
// 		// 请求头添加 token 字段, 也可以是 authorization 字段
// 		config.headers.authorization = token;
// 	}
// 	return config;
// }, (error) => {
// 	// 对请求错误做些什么
// 	return Promise.reject(error);
// });

// 响应拦截器
request.interceptors.response.use((response) => {
	// 对响应数据做点什么
	if (response.status === 200) {
		return Promise.resolve(response.data);
	} else {
		return Promise.reject(response);
	}
}, (error) => {
	// 对响应错误做点什么
	return Promise.reject(error);
});

// 封装 post 方法
function post(url, data = {}) {
	return new Promise((resolve, reject) => {
		request.post(url, data).then(res => {
			resolve(res.data);
		}).catch(err => {
			reject(err);
		});
	});
}

export {
	post,
	request
};